using System;
using System.Collections.Generic;

namespace Book.Blog.Core.DTOs
{
    public class SearchRequestDTO
    {
        public string? Query { get; set; }
        public int Skip { get; set; }
        public int Take { get; set; }
        public string? SortBy { get; set; }
        public string? SortDirection { get; set; }
        public Guid? CategoryId { get; set; }
        public List<Guid>? TagIds { get; set; }
        public Guid? AuthorId { get; set; }
        public DateTime? FromDate { get; set; }
        public DateTime? ToDate { get; set; }
    }

    public class SearchResultDTO
    {
        public int TotalCount { get; set; }
        public List<SearchItemDTO> Items { get; set; } = new();
    }

    public class SearchItemDTO
    {
        public Guid Id { get; set; }
        public string Title { get; set; } = string.Empty;
        public string Content { get; set; } = string.Empty;
        public DateTime CreatedAt { get; set; }
        public DateTime? UpdatedAt { get; set; }
        public double Score { get; set; }
        public List<string> TagNames { get; set; } = new();
    }
} 